home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
LOGIC Apps
/
Logic-APPLE_II_APPS.iso
/
mac
/
LOGIC Apple II 5.25" Library - ProDOS
/
PRO004.dsk
/
FILES.bas
< prev
next >
Wrap
BASIC Source File
|
2012-02-16
|
6KB
|
149 lines
10 REM << FILE CABINET >>
20 REM << FILES MODULE >>
30 REM << PRODOS VERSION >>
40 REM << CONVERTED BY >>
50 REM << MICHAEL MOORE >>
60 REM << MAY 1984 >>
70 :
90 IF FLAG = 1 THEN FLAG = 0: GOTO 14100
100 GOTO 13010: REM << FILE ROUTINE
2400 REM <<<< GET CHOICE >>>>>
2410 PRINT L$"->":V = PEEK(37)::H = LEN(L$) +3
2420 VTAB V: HTAB H: CALL -868: INPUT "";R$:R = VAL(R$): CALL -958
2440 PRINT : RETURN
2500 REM <<<< GET YES/NO ANSWER >>>>
2510 V = PEEK(37) +1
2515 PRINT L$" (Y/N)"
2520 IF V >23 THEN V = 23
2530 VTAB V: HTAB ( LEN(L$) +8): CALL -868: INPUT A$: IF A$ = "Y" THEN YES = 1: RETURN
2540 IF A$ = "N" THEN YES = 0: RETURN
2550 INVERSE : PRINT " PRESS 'Y' OR 'N'...": NORMAL : IF V = >23 THEN V = 22
2560 GOTO 2530
13000 REM <<< LIST DATA BASES >>>>
13010 HOME
13020 VTAB 5: HTAB 10: PRINT "FILE CABINET - PRODOS": PRINT
13025 HTAB 12: PRINT "FILE DELETION MENU": PRINT
13030 POKE 216,0
13040 PRINT "SELECT FROM:": PRINT
13050 IF NOT NR THEN J = 1: GOTO 13070
13060 FOR J = 1 TO NR: PRINT J" "R$(J): NEXT J: PRINT
13070 PRINT J;" RETURN TO MAIN MENU": PRINT
14000 REM <<< FILES ROUTINE >>>>
14010 PRINT : INPUT "DELETE WHICH -> ";S$:S = VAL(S$)
14015 IF S = J THEN PRINT D$;"CHAIN";PX$ +"MAIN"
14020 IF S <1 OR S >J -1 THEN PRINT CHR$(7);: VTAB PEEK(37) -1: CALL -868: GOTO 14010
14030 HOME : VTAB (9): PRINT "READY TO DELETE ";: INVERSE : PRINT R$(S);: NORMAL : PRINT ".": PRINT
14040 PRINT "ONCE DELETED, THIS DATA CANNOT BE"
14050 PRINT "RECOVERED. ARE YOU SURE THAT YOU"
14060 PRINT "WANT TO DELETE IT? (Y/N) ";: INPUT "";S$
14070 IF S$ < >"Y" THEN GOTO 13010
14080 HOME : VTAB 12: INVERSE : PRINT "[ DELETING "R$(S)" DATABASE ]": NORMAL
14090 FD$ = R$(S)
14100 ONERR GOTO 14170
14110 F$ = "RPTFMTNAME"
14115 PRINT D$"VERIFY";PB$ +FD$ +"/" +F$
14120 GOSUB 23010
14125 VTAB 15: CALL -868: PRINT "DELETING ";PB$ +FD$ +"/" +F$
14130 PRINT D$"DELETE";PB$ +FD$ +"/" +F$
14140 FOR I = 1 TO NR
14145 VTAB 15: CALL -868: PRINT "DELETING ";PB$ +FD$ +"/" +"RPTFMT" +R$(I)
14150 PRINT D$"DELETE";PB$ +FD$ +"/" +"RPTFMT" +R$(I)
14160 NEXT I
14170 POKE 216,0: CALL 1013
14175 VTAB 15: CALL -868: PRINT "DELETING ";PB$ +FD$ +"/" +"INDEX"
14180 PRINT D$"DELETE";PB$ +FD$ +"/" +"INDEX"
14185 VTAB 15: CALL -868: PRINT "DELETING ";PB$ +FD$ +"/" +"HEADER"
14190 PRINT D$"DELETE";PB$ +FD$ +"/" +"HEADER"
14200 R$(0) = FD$
14210 F$ = "": GOSUB 23010
14212 IF NR -1 = >1 GOTO 14221
14215 VTAB 15: CALL -868: PRINT "DELETING ";PB$ +"BASENAMES"
14220 PRINT D$"DELETE";PB$ +"BASENAMES"
14221 VTAB 15: CALL -868: PRINT "DELETING ";PB$ +FD$
14222 PRINT D$"DELETE";PB$ +FD$
14225 IF NR -1 <1 GOTO 14265
14229 VTAB 15: CALL -868: PRINT "SAVING REMAINING FILE NAMES"
14230 I = 0:J = 1
14240 IF R$(J) = R$(0) THEN 14255
14250 I = I +1:R$(I) = R$(J)
14255 J = J +1: ON J >NR GOTO 14260: GOTO 14240
14260 NR = I:F2 = 1: GOSUB 24010
14265 VTAB 15: CALL -868: PRINT "RETURNING TO MAIN ROUTINE"
14270 PRINT D$;"CHAIN";PX$ +"MAIN"
23000 REM <<< READ FILE SUB ROUTINE >>>
23010 FF = 0: IF F$ < >"INDEX" THEN FF = 1
23015 Q$ = PB$ +FD$ +"/" +F$
23017 IF F$ = "" THEN Q$ = PB$ +"BASENAMES"
23020 PRINT D$"OPEN";Q$
23030 PRINT D$"READ";Q$
23040 INPUT NR
23050 FOR J = 1 TO NR
23060 ON FF GOTO 23130
23070 FOR I = 1 TO NH
23080 CALL 768,N$(J,I)
23090 L = LEN(N$(J,I)): IF L >L%(I) THEN L%(I) = L
23100 NEXT I
23110 R(J) = J
23120 GOTO 23140
23130 CALL 768,R$(J)
23140 NEXT J
23150 PRINT D$"CLOSE"
23160 FF = 0
23170 RETURN
24000 REM <<< WRITE INDEX FILE SUB ROUTINE >>>>
24010 NR$ = RIGHT$("00000" + STR$(NR),5)
24020 FF = 0: IF F$ < >"INDEX" THEN FF = 1
24030 Q$ = PB$ +FD$ +"/" +F$
24032 IF F$ = "" THEN Q$ = PB$ +"BASENAMES"
24033 IF F2 = 1 GOTO 24037: REM FLAG TO PERMIT REWRITE BASENAMES
24035 R$(I) = RN$(I): IF I <NR THEN 25030
24037 F2 = 0: REM RESET
24040 PRINT D$"OPEN"Q$: PRINT D$"WRITE"Q$
24050 PRINT NR$
24060 FOR J = 1 TO NR
24070 ON FF GOTO 24130
24080 Y = R(J)
24090 FOR I = 1 TO NH
24100 PRINT N$(Y,I)
24110 NEXT I
24120 GOTO 24140
24130 PRINT R$(J)
24140 NEXT J
24150 PRINT D$"CLOSE"
24160 FF = 0
24170 RETURN
25000 REM <<< SUBROUTINE >>>
25030 I = I +1: IF I <NR AND RN$(NN) = RN$(I) THEN NR = NR -1
25040 GOSUB 24010
25050 NR = NS: RETURN
30000 REM << FILE ROUTINE >>>
30010 HOME : PRINT "SELECT FROM:": PRINT
30020 FOR I = 1 TO NR: PRINT I" "R$(I): NEXT I: PRINT
30030 L$ = "DELETE WHICH ":CHOICE = I -1: GOSUB 2410:S = R
30040 HOME : VTAB 10: PRINT "YOU HAVE SELECTED THE OPTION TO DELETE": INVERSE : PRINT RN$(S)" FORMAT": NORMAL
30050 L$ = "IS THIS CORRECT": GOSUB 2510: IF NOT YES THEN NR = NS: GOTO 13010
30060 F$ = RN$(S) +"RPTFMT"
30070 PRINT D$"DELETE";PB$ +FD$ +"/" +F$
30080 IF S = NR THEN 30100
30090 FOR I = S TO NR -1:RN$(I) = RN$(I +1): NEXT I
30100 NR = NR -1:F$ = "RPTFMTNAME": IF NR <1 THEN 30130
30110 I = 0: GOSUB 25030
30120 PRINT D$;"CHAIN";PX$ +"MAIN"
30130 PRINT D$"DELETE";PB$ +FD$ +"/" +F$
30140 NR = NS: PRINT D$;"CHAIN";PX$ +"MAIN"
61000 REM *********************
61010 REM FILE CABINET
61020 REM PRODOS
61030 REM ---------------------
61040 REM CONVERTED BY
61050 REM MICHAEL MOORE
61060 REM MAY 1984
61070 REM =====================
61080 REM BASED ON
61090 REM FILE CABINET-MACH 5
61100 REM BY ED AYMOND
61110 REM AND BOB MATZINGER
61120 REM AS A MODIFICATION
61130 REM OF EARLIER VERSIONS
61140 REM *********************
61150 REM APPLE CORPS OF DALLAS